package com.bridgeintelligent.tag.customer.track;

import com.bridgeintelligent.tag.customer.model.CustomerModel;

import java.util.List;
import java.util.Map;

/**
 * 客群追踪服务接口
 */
public interface ITrackService {

    void addTrack(TrackInfo trackInfo);

    void updateTrack(TrackInfo trackInfo);

    TrackInfo findById(String id);

    TrackInfo findByCustomerId(String customerId);

    void delById(String id);

    TrackPage<TrackInfo> findList(
            String customerName,
            String timeType,
            String trackCycle,
            String trackUptStartTime,
            String trackUptEndTime,
            String createStartTime,
            String createEndTime,
            String trackStatus,
            Integer pageNum,
            Integer pageSize);

    List<DataModel> getTrackData(TrackQueryModel queryModel);

    List<CustomerModel> trackCustomerList(String trackId,String indexId, String customerName) ;

    List<List<String>> getRowData(TrackQueryModel queryModel);

    public Map<String, String> symbolRelation(String indexId);

    public String getSql(String customerId);

    /**
     *
     * @param trackId 追踪ID
     * @param trackStartTime 开始时间
     * @param trackEndTime 结束时间
     * @param sortWord 排序字段
     * @param sort 升降序
     * @param type 数值型标签取值类型
     * @param pageNum 页数
     * @param pageSize 大小
     * @return 分页数据
     */
    public TrackPage<SortedModel> getDimData(
            String trackId,
            String trackStartTime,
            String trackEndTime,
            String sortWord,
            Boolean sort,
            String type,
            Integer pageNum,
            Integer pageSize);


    /**
     * 校验客群能否被使用过
     * @param id
     * @param customerId
     * @return
     */
    boolean isUsed(String id,String customerId);

}
